package com.shujia.spark

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Demo10Union {
  def main(args: Array[String]): Unit = {

    val conf: SparkConf = new SparkConf()
      .setMaster("local")
      .setAppName("map")


    val sc = new SparkContext(conf)


    val rdd1: RDD[Int] = sc.parallelize(List(1, 2, 3, 4))
    val rdd2: RDD[Int] = sc.parallelize(List(5, 6, 7, 8, 9))

    /**
      * getNumPartitions：获取rdd分区数
      * 不是一个算子，只是一个普通的方法
      *
      */

    println("rdd1:" + rdd1.getNumPartitions)
    println("rdd2:" + rdd2.getNumPartitions)


    /**
      * union：将两个rdd合并成一个，在屋里层面没有合并，只是在代码层面合并
      *
      * 两个rdd的类型必须一致
      *
      * 新的rdd分区数量等于合并之前rdd分区数量之和
      *
      */

    val unionRDD: RDD[Int] = rdd1.union(rdd2)

    println("unionRDD:" + unionRDD.getNumPartitions)

    unionRDD.foreach(println)

  }

}
